<?php

namespace IYUU\sdk\CoolQ;

use IYUU\sdk\CoolQ\Event\Message as EventMessage;

/**
 * 模块逻辑处理器，接口
 * Interface ModulesDomainInterface
 * @package IYUU\sdk\CoolQ
 */
interface ModulesDomainInterface
{
    /**
     * 状态（是否启用）
     * @return bool
     */
    public function state(): bool;

    /**
     * 关键字触发（主菜单）
     * @return string
     */
    public function keyword(): string;

    /**
     * 二级菜单
     * @param string $message 消息内容
     * @return string
     */
    public function menu(string $message): string;

    /**
     * 逻辑处理
     * @param Context $context
     * @param EventMessage $msgObj
     * @return string 提高兼容性，必须返回字符串
     */
    public function process(Context $context, EventMessage $msgObj): string;
}
